/**
* @version 4.0
* @package YAKUSOFT.
* @author Jorge Washington Mueses Cevallos.
* @copyright Copyright (C) 2011 por Jorge Mueses. Todos los derechos reservados.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL.
* YAKUSOFT es un software de libre distribución, que puede ser
* copiado y distribuido bajo los términos de la Licencia
* Attribution-NonCommercial-NoDerivs 3.0 Unported,
* de acuerdo con la publicada por la CREATIVE COMMONS CORPORATION.
*/

package ec.com.yaku.fact.clases;
import ec.com.yaku.lib.BaseDatos;
import java.sql.ResultSet;

public class PuntoEmision extends BaseDatos{
    public PuntoEmision(String m, int p, String db, String u, String c){
        super(m, p, db, u, c);
    }
    public ResultSet getPuntoEmision(String id)
    {
        return this.consulta("SELECT * from tbl_punto_emision WHERE id_punto_emision="+id);
    }
    public ResultSet getPuntosEmision()
    {
        return this.consulta("SELECT id_punto_emision,punto_emision from vta_punto_emision;");
    }
    public int getIdPuntoEmision(String usuario_caja)
    {
        int id = -1;
        try{
            ResultSet res = this.consulta("SELECT id_punto_emision FROM tbl_punto_emision WHERE usuario_caja = '"+usuario_caja+"'");
            if(res.next()){
                id = res.getString(1)!=null ? res.getInt(1) : -1;
                res.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return id;
    }
    public String getIdCaja(int id_punto_emision)
    {
        String id = "-1";
        try{
            ResultSet res = this.consulta("SELECT id_plan_cuenta_caja FROM tbl_punto_emision WHERE id_punto_emision="+id_punto_emision);
            if(res.next()){
                id = res.getString(1)!=null ? res.getString(1) : "-1";
                res.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return id;
    }
    public String getIdCaja(String cajero)
    {
        String id = "-1";
        try{
            ResultSet res = this.consulta("SELECT id_plan_cuenta_caja FROM tbl_punto_emision WHERE usuario_caja='"+cajero+"'");
            if(res.next()){
                id = res.getString(1)!=null ? res.getString(1) : "-1";
                res.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return id;
    }
    public String getIdDiferenciaCaja(int id_punto_emision)
    {
        String id = "-1";
        try{
            ResultSet res = this.consulta("SELECT id_plan_cuenta_diferencia_caja FROM tbl_punto_emision WHERE id_punto_emision="+id_punto_emision);
            if(res.next()){
                id = res.getString(1)!=null ? res.getString(1) : "-1";
                res.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return id;
    }
    public String getNombre(String id)
    {
        String punto_emision1 = "PRINCIPAL";
        if(id.compareTo("0")!=0){
            try{
                ResultSet r = this.consulta("SELECT * FROM tbl_punto_emision where id_punto_emision="+id+";");
                if(r.next()){
                    punto_emision1 = (r.getString("punto_emision")!=null) ? r.getString("punto_emision") : "";
                    r.close();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        return punto_emision1;
    }
    public String getCuentaCaja(String id)
    {
        String id_plan_cuenta_caja = "8";
        if(id.compareTo("0")!=0){
            try{
                ResultSet r = this.consulta("SELECT * FROM tbl_punto_emision where id_punto_emision="+id+";");
                if(r.next()){
                    id_plan_cuenta_caja = (r.getString("id_plan_cuenta_caja")!=null) ? r.getString("id_plan_cuenta_caja") : "8";
                    r.close();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        return id_plan_cuenta_caja;
    }
    public boolean estaDuplicado(String id, String punto_emision)
    {
        ResultSet res = this.consulta("SELECT * FROM tbl_punto_emision where lower(punto_emision)='"+punto_emision.toLowerCase()+"' and id_punto_emision<>"+id+";");
        if(this.getFilas(res)>0){
            return true;
        }
        try{
            res.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return false;
    }
    public String getIdpunto_emision(String usuario_caja)
    {
        String id = "-1";
        try{
            ResultSet res = this.consulta("SELECT id_punto_emision FROM tbl_punto_emision WHERE usuario_caja like '%"+usuario_caja+"%';");
            if(res.next()){
                id = res.getString(1)!=null ? res.getString(1) : "-1";
                res.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return id;
    }
    public boolean ipDuplicada(String id, String ip)
    {
        String vec_ip[] = ip.split("-");
        String w = "";
        for(int i=0; i<vec_ip.length; i++){
            w += "usuario_caja like '%"+vec_ip[i].trim()+"%' or ";
        }
        if(w.compareTo("")!=0){
            w = "(" + w.substring(0, w.length()-3) + ")";
        }
        ResultSet r = this.consulta("SELECT * FROM tbl_punto_emision WHERE "+w+" and id_punto_emision<>"+id+";");
        if(this.getFilas(r)>0){
            return true;
        }
        try{
            r.close();
        }catch(Exception e){
            e.printStackTrace();
        }
        return false;
    }
    public String insertar(String pu_em, String ubicacion, String usuario_caja, String caja, String id_plan_cuenta_diferencia_caja,
            String fac_se, String fac_des, String fac_has, String fac_cad,
            String fac_aut, String impresion, String margen_tope, String margen_tope_talonario, String estado)
    {
        return this.insert("INSERT INTO tbl_punto_emision(punto_emision,ubicacion,usuario_caja,id_plan_cuenta_caja,"
                + "id_plan_cuenta_diferencia_caja,fac_num_serie,fac_sec_desde,"
                + "fac_sec_hasta,fac_cad_facturero,fac_autorizacion,impresion,margen_tope,margen_tope_talonario,estado) " +
                "VALUES('"+pu_em+"', '"+ubicacion+"', '"+usuario_caja+"', "+caja+", "+id_plan_cuenta_diferencia_caja+", '"+fac_se+
                "', '"+fac_des+"', '"+fac_has+ "', '"+fac_cad+"', '"+fac_aut+"', "+impresion+", "+margen_tope+", "+margen_tope_talonario+", "+estado+")");
    }
    public boolean actualizar(String id, String pu_em, String ubicacion, String usuario_caja, String caja, String id_plan_cuenta_diferencia_caja,
            String fac_se, String fac_des, String fac_has,
            String fac_cad, String fac_aut, String impresion, String margen_tope, String margen_tope_talonario, String estado)
    {
        return this.ejecutar("UPDATE tbl_punto_emision SET punto_emision='"+pu_em+"', ubicacion='"+ubicacion+"', usuario_caja='"+usuario_caja+
                "', id_plan_cuenta_caja="+caja+", id_plan_cuenta_diferencia_caja="+id_plan_cuenta_diferencia_caja+", fac_num_serie='"+fac_se+
                "', fac_sec_desde='"+fac_des+"', fac_sec_hasta='"+fac_has+"', fac_cad_facturero='"+fac_cad+"', fac_autorizacion='"+fac_aut+
                "', impresion="+impresion+", margen_tope="+margen_tope+", margen_tope_talonario="+margen_tope_talonario+", estado="+estado+
                " WHERE id_punto_emision="+id);
    }
    public boolean setFormatoValor(String id, String campo, String valor)
    {
        return this.ejecutar("UPDATE tbl_punto_emision SET "+campo+"='"+valor+"' WHERE id_punto_emision="+id);
    }
}